//购物车
$(function() {
    // 给nav导航栏中的li添加悬浮变字体颜色的效果（完全可以不用做）
    $("nav li").stop().mouseenter(function() {
        $(this).css('color', 'red');
    }).stop().mouseleave(function() {
        $(this).css('color', '#000');
    })
    getPriceSum();
    // 让全选按钮的checked属性的状态和所有item的复选框状态一致
    // checked属性改变之后触发
    $(".select-all input").change(function() {
        // 获取它的状态，给所有的item里面的复选框赋值
        var check = $(this).prop('checked');
        // 让每个小项目和全选按钮同时改变值,否则点击最上面全选按钮，最下面全选按钮选不上
        $(".item input,.select-all input").prop('checked', check);
        // 当全选按钮发生改变，如果是选中状态给所有的item加current类
        if (check) {
            $('.item').addClass('current');
        } else {
            $('.item').removeClass('current');
        }
    });
    // 点击下面每个项目中的复选框，如果复选框都选上了，让上面下面的全选按钮也选上；
    // 如果没都选上，就让全选按钮处于没选中状态。
    $(".item input").change(function() {
        // 如果所有item中复选框被选中的数目等于总数，就让让全选按钮也选上
        // $(".item input:checked")：被选中的个数，但他是以伪元素形式输出，再加上.length即可
        if ($(".item input:checked").length == $(".item").length) {
            $(".select-all input").prop('checked', true);
        } else if ($(".item input:checked").length < $(".item").length) {
            $(".select-all input").prop('checked', false);
        }
        // 当点击每个item前面的复选框按钮时，如果是选中状态就添加current类
        var check = $(this).prop('checked');
        if (check) {
            $(this).parents('.item').addClass('current');
        } else {
            $(this).parents('.item').removeClass('current');
        }
    });
    // 增加商品数量模块，点击加号时，让当前商品数量++
    $(".item .right").click(function() {
        var num = $(this).siblings('.nums').val();
        num++;
        $(this).siblings('.nums').val(num);
        // 点击右侧按钮时候，当前的商品后面的小计也要做相应的改变
        // 把价格中的数字截取出来*数目，再赋值给小计，赋值时+"￥"。
        var price = $(this).parents('.item-num').siblings('.item-price').text().substr(1);
        // 计算结果，保留两位小数
        var sum = (price * num).toFixed(2);
        // 给他爹的兄弟赋值
        $(this).parents('.item-num').siblings('.item-sum').text("￥" + sum);
        getsum();
        getPriceSum();
    });
    // 减少商品，当点击左按钮时，先获取再--，最后赋值；到了1就不能再减了。
    $(".item .left").click(function() {
        var num = $(this).siblings('.nums').val();
        if (num <= 1) {
            return false;
        }
        num--;
        $(this).siblings('.nums').val(num);
        // 点击左侧按钮时候，当前的商品后面的小计也要做相应的改变
        // 把价格中的数字截取出来*数目，再赋值给小计，赋值时+"￥"。
        var price = $(this).parents('.item-num').siblings('.item-price').text().substr(1);
        // 计算结果，保留两位小数
        var sum = (price * num).toFixed(2);
        // 给他爹的兄弟赋值
        $(this).parents('.item-num').siblings('.item-sum').text("￥" + sum);
        getsum();
        getPriceSum();
 
    });
    // 当用户在input件数，输入框中自定义输入数字时，也要修改小计
    $(".item .nums").change(function() {
            var num = $(this).val();
            // 如果输入的数值小于1,先给它赋值为1,并把总价格赋值为单价
            if (num < 1) {
                $(this).val(1);
                // 获取当前价格
                var price = $(this).parents('.item-num').siblings('.item-price').text().substr(1);
                // 给item后面的总价赋值.toFixed()方法前面必须是数字类型的才行
                price = parseFloat(price);
                $(this).parents('.item-num').siblings('.item-sum').text("￥" + (price).toFixed(2));
                getsum();
                getPriceSum();
                return false;
            }
            // 获取价格值
            var price = $(this).parents('.item-num').siblings('.item-price').text().substr(1);
            // 计算结果，保留两位小数
            var sum = (price * num).toFixed(2);
            // 给他爹的兄弟赋值
            $(this).parents('.item-num').siblings('.item-sum').text("￥" + sum);
            getsum();
            getPriceSum();
        })
        // 计算总计，当点击加号或减号，或更改input文本框时触发，因多次使用所以封装函数
    function getsum() {
        var sum = 0;
        $(".item .nums").each(function(i, domele) {
                var num = 0;
                // $(domele).val()是字符型，需要转化为数值型
                num = parseInt($(domele).val());
                sum += num;
 
            })
            // 给总计里面的数目赋值
        $(".footer-num span").text(sum);
    }
    // 计算总额,先获取当前item的商品数目*当前item的价格，再遍历相加，最后赋值，
    function getPriceSum() {
        var priceSum = 0;
        $(".item .nums").each(function(i, domele) {
            // 获取当前元素的件数
            var num = parseInt($(domele).val());
            // 获取当前元素的价格
            var price = parseFloat($(this).parents('.item-num').siblings('.item-price').text().substr(1));
            priceSum += (num * price);
 
        })
        priceSum = priceSum.toFixed(2);
        // 给总价赋值
        $(".footer-sum").text('￥' + priceSum);
 
    }
    // 用户点击每个item后面的删除按钮时，删除当前item
    $(".item .item-opration").click(function() {
            $(this).parents(".item").remove();
            isChecked();
            getPriceSum();
            getsum();
        })
        // 当点击footer里面的删除时，删除勾选前面复选框的item
    $(" .footer-opration").click(function() {
            // 判断每个item前面的复选框是否被选中，如果选中删除他所对应的item即可
            $(".item #checkbox:checked").parents(".item").remove();
            isChecked();
            getPriceSum();
            getsum();
 
        })
        
    isChecked();
 
    function isChecked() {
        if ($(".item").length == 0) {
            $(".select-all input").prop('checked', false);
        }
    }
 
 
 
})
//购物车end